/**
 * 格式化时间为北京标准时间(UTC+8)并支持截取
 * @param {string|number|Date} time - 输入时间
 * @param {number} [start] - 截取开始位置/长度（可选）
 * @param {number} [end] - 截取结束位置（可选）
 * @returns {string} 格式化后的时间字符串
 */
export function formatDate(time, start, end) {
  // 新增：未传递任何参数时，默认使用当前日期
  if (arguments.length === 0) {
    const now = new Date();
    // 转换为北京标准时间(UTC+8)
    const beijingTime = new Date(now.getTime() + 8 * 60 * 60 * 1000);
    // 提取年、月、日并格式化为 YYYY-MM-DD（前10位）
    const year = beijingTime.getUTCFullYear();
    const month = String(beijingTime.getUTCMonth() + 1).padStart(2, '0');
    const day = String(beijingTime.getUTCDate()).padStart(2, '0');
    return `${year}-${month}-${day}`; // 固定返回前10位日期格式
  }

  // 原有逻辑：处理传入参数的情况
  const date = new Date(time);
  if (isNaN(date.getTime())) {
    console.error('无效的时间输入:', time);
    return '';
  }

  // 转换为北京标准时间(UTC+8)
  const beijingTime = new Date(date.getTime() + 8 * 60 * 60 * 1000);
  const [year, month, day, hours, minutes, seconds] = [
    beijingTime.getUTCFullYear(),
    String(beijingTime.getUTCMonth() + 1).padStart(2, '0'),
    String(beijingTime.getUTCDate()).padStart(2, '0'),
    String(beijingTime.getUTCHours()).padStart(2, '0'),
    String(beijingTime.getUTCMinutes()).padStart(2, '0'),
    String(beijingTime.getUTCSeconds()).padStart(2, '0')
  ];
  const fullTimeStr = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;

  // 参数截取逻辑（保持不变）
  if (arguments.length === 1) return fullTimeStr;
  if (arguments.length === 2) return fullTimeStr.slice(0, start);
  if (arguments.length === 3) return fullTimeStr.slice(start, end);
  return fullTimeStr;
}

